1. Field of the Invention
This invention relates generally to computer hardware and software and, more particularly, to a method and a device for testing hardware and software compatibilities and interactions.
2. Description of Related Art
The ability to add and remove devices to a computer and/or a computer system while the computer and/or computer system is running and have the operating system automatically recognize the change is known as xe2x80x9chot pluggingxe2x80x9d or xe2x80x9chot swapping.xe2x80x9d At least two conventional external bus standards, the Universal Serial Bus (USB) standard and the IEEE1394 or FireWire(copyright) standard, support hot plugging. Hot plugging is also a feature of the Personal Computer Memory Card International Association (PCMCIA) standard. Hot plugging may also be used with some Small Computer System Interface (SCSI) devices.
The Universal Serial Bus (USB) standard is an external bus standard that supports data transfer rates of 1.2 and 12 million bits per second (1.2 Mbps and 12 Mbps). A single Universal Serial Bus (USB) port can be used to connect up to 127 peripheral devices, such as mice, modems, keyboards and the like. The Universal Serial Bus (USB) standard also supports plug-and-play installation. Starting in 1996, a few computer manufacturers included Universal Serial Bus (USB) support in their new machines. However, with the release of the Apple""s best-selling iMac(copyright) in 1998, Universal Serial Bus (USB) support became widespread. Universal Serial Bus (USB) support is expected to completely replace serial and parallel ports.
The IEEE1394 or FireWire(copyright) standard is an external bus standard that supports data transfer rates of 400 million bits per second (400 Mbps). Products supporting the IEEE1394 standard go under different names, depending on the company. Apple, which originally developed the technology, uses the trademarked name FireWire(copyright). Other companies use other names, such as i.link and Lynx, to describe their IEEE1394 products.
There is a constant drive within the computer industry to verify software""s ability to work with peripheral hardware devices. In particular, there is often a need to verify software""s ability to work with at least one hot-pluggable peripheral hardware device that connects to a computer and/or a computer system via hot-pluggable interfaces such as those supporting the Universal Serial Bus (USB) standard, the IEEE1394 or FireWire(copyright) standard and the like. Conventionally, software engineers have manually plugged, unplugged and replugged a Universal Serial Bus (USB) device (or a string or chain of such devices), for example, repeatedly, attempting to discover software problems such as memory leaks, failed and/or intermittent enumerations of the bus, interactions with problematic devices and the like. However, human errors inevitably limit the usefulness, robustness and reliability of such manual testing. For example, such manual plugging may not be performed at sufficiently regular intervals and/or may not be able to be performed for extended periods of time.
Conventional attempts to automate the plugging and unplugging of a Universal Serial Bus (USB) device (or a string or chain of such devices), for example, have not permitted the plugging and unplugging to be performed at easily variable intervals. Moreover, such attempts have not provided for the power connections of the Universal Serial Bus (USB) device (or a string or chain of such devices) to be enabled prior to the data connections of the Universal Serial Bus (USB) device (or a string or chain of such devices) to emulate the design of the Universal Serial Bus (USB) cable connectors. In addition, such attempts have not provided for automated monitoring of the plugging and unplugging of the Universal Serial Bus (USB) device (or a string or chain of such devices).
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
In one aspect of the present invention, a method is provided, the method comprising testing at least one hot-pluggable peripheral hardware device and a computer system by simulating hot-plugging the at least one hot-pluggable peripheral hardware device using a test fixture inserted between the computer system and the at least one hot-pluggable peripheral hardware device. The method also comprises monitoring at least one effect of testing the at least one hot-pluggable peripheral hardware device and the computer system.
In another aspect of the present invention, a system is provided, the system comprising a computer system and at least one hot-pluggable peripheral hardware device. The system also comprises a test fixture capable of testing the at least one hot-pluggable peripheral hardware device and the computer system by simulating hot-plugging the at least one hot-pluggable peripheral hardware device using the test fixture inserted between the computer system and the at least one hot-pluggable peripheral hardware device and a monitor capable of monitoring at least one effect of testing the at least one hot-pluggable peripheral hardware device and the computer system.
In yet another aspect of the present invention, a device is provided, the device comprising means for testing at least one hot-pluggable peripheral hardware device and a computer system by simulating hot-plugging the at least one hot-pluggable peripheral hardware device using a test fixture inserted between the computer system and the at least one hot-pluggable peripheral hardware device. The device also comprises means for monitoring at least one effect of testing the at least one hot-pluggable peripheral hardware device and the computer system.